Online transaction processing (OLTP) systems are computer systems that are designed to provide controlled access to transaction protected resources, such as databases. In OLTP systems, a transaction protected resource may only be accessed or modified as part of a "transaction." A transaction is defined as a unit of work that has "ACID" properties. "ACID" properties means that a transaction is 1) "atomic," 2) "consistent," 3) "isolated," and 4) "durable." To initiate a transaction, a client program performs a "begin transaction" operation. Subsequently, the client program accesses and potentially modifies one or more protected resources. At the end of the transaction, the client program executes either a "commit transaction" or an "abort transaction" operation.
Increasingly, OLTP systems are constructed using a client/server architecture where client programs, located on client computers, interact with server programs located on server computers. In this type of OLTP system, the server programs act as interfaces to transaction protected resources. Each server program is subdivided into one or more services. Each service is a portion of the server program that has been created to perform a specific type of transaction. For example, a service might be created to register new cars, or to move funds between bank accounts. Client programs access services by sending request messages to the appropriate server program. When required, a reply message is generated by the service and sent by the server program to the requesting client program.
In many client/server OLTP systems, the interaction between client and server programs is coordinated by a transaction processing monitor or TP monitor. TP monitors are programs that function as transaction middlemen between client programs and server programs. To access a protected resource, a client program sends a message to the TP monitor responsible for the protected resource. The TP monitor forwards the message to the appropriate server program. The TP monitor also forwards any result message generated by the server program to the requesting client program. Use of a TP monitor ensures that the "ACID" properties required by the transaction abstraction are maintained. Examples of TP monitors include Nonstop Tuxedo and Pathway/TS of Tandem Computers Inc., and CICS of IBM.
Personal computers are commonly used as client systems in OLTP systems. Typically, these computers use the Microsoft Windows.RTM. operating system. Windows.RTM. includes an object oriented method for program interaction known as object linking and embedding (OLE). Using OLE, programs may be configured to export object oriented interfaces to their internal methods. For example, a word processor may be configured to provide an object oriented interface to its spell checker. A program that exports this type of object oriented interface is known as an OLE server. Programs known as OLE clients use the object oriented interface provided by OLE servers to access the servers' internal methods. Thus, an OLE client can use the spell checker of a word processor configured as an OLE server.
Much of the power of the OLE system stems from OLE's widespread use. In effect, configuration of a program as an OLE server makes the program's internal methods available to a wide range of existing OLE clients. Unfortunately, configuration of OLTP systems as OLE servers is problematic. This difficulty stems largely from the fact that the type of services provided by an OLTP system depend largely on the particular resource that the OLTP system is protecting. For example, the services included in an ATM network vary greatly from the services included in a payroll system. As a result, a different set of OLE objects may be required for each instance of an OLTP system. The unfortunate result is that it is more practical to provide OLTP systems without OLE interfaces than it is to build specialized OLE interfaces for each OLTP system. Thus, a need exists for a system that allows OLTP systems to be accessed from OLE clients.